#ifndef __GLF_CORE_READWRITELOCK_H_INCLUDED__
#define __GLF_CORE_READWRITELOCK_H_INCLUDED__

#include <glf/core/readWriteSpinLock.h>
#include <glf/core/readWriteMutexLock.h>

namespace glf
{

#ifdef GLF_USE_READWRITESPINLOCK
	// Spinlock
	typedef ReadWriteSpinLock ReadWriteLock;
	typedef ScopedReadSpinLock ScopedReadLock;
	typedef ScopedWriteSpinLock ScopedWriteLock;
	typedef PromoteScopedWriteSpinLock PromoteScopedWriteLock;
#else
	// Mutex
	typedef ReadWriteMutexLock ReadWriteLock;
	typedef ScopedReadMutexLock ScopedReadLock;
	typedef ScopedWriteMutexLock ScopedWriteLock;
	typedef PromoteScopedWriteMutexLock PromoteScopedWriteLock;
#endif

} // namespace glf

#endif //__GLF_CORE_READWRITELOCK_H_INCLUDED__
